package com.micro.ai.template.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.micro.ai.template.entity.TemplateVersion;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 模板版本Mapper接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
@Mapper
public interface TemplateVersionMapper extends BaseMapper<TemplateVersion> {

    /**
     * 根据模板ID查询版本列表
     */
    List<TemplateVersion> selectByTemplateId(@Param("templateId") Long templateId);

    /**
     * 根据模板ID和版本号查询版本
     */
    TemplateVersion selectByTemplateIdAndVersion(@Param("templateId") Long templateId, @Param("version") String version);

    /**
     * 查询模板的活跃版本
     */
    TemplateVersion selectActiveVersion(@Param("templateId") Long templateId);

    /**
     * 更新版本状态
     */
    int updateVersionStatus(@Param("templateId") Long templateId, @Param("versionId") Long versionId, @Param("status") Integer status);

    /**
     * 设置活跃版本
     */
    int setActiveVersion(@Param("templateId") Long templateId, @Param("versionId") Long versionId);

    /**
     * 取消其他版本的活跃状态
     */
    int cancelActiveVersions(@Param("templateId") Long templateId, @Param("excludeVersionId") Long excludeVersionId);
}
